Novell Client Roaming Profile Behaviors

(Last modified: 26Oct2005)

This document (10099432) is provided subject to the disclaimer at the end of this document.

fact

Novell Clients for Windows NT/2000/XP

Novell Client 4.83 for Windows NT/2000/XP

Novell Client 4.9 for Windows NT/2000/XP

Novell Client v4.91 for Windows 2000/XP

Roaming Profiles

goal

Novell Client Roaming Profile Behaviors

note

What follows is an explanation of a change in the way the Novell client handles roaming profiles.

Prior to the Novell Client 4.9, the client handled roaming profiles by checking the time stamp of the NTUSER.DAT file as it exists on the workstation and on the server. If the server copy of this file has a newer time stamp, then NWGina would download the entire directory structure to the local workstation and set this as the users local profile. ZEN will then apply its policy changes to the local profile. If the time stamp on the server copy of this file is older or equal to that of the local workstation copy, then the profile is not downloaded. ZEN will then apply its policy changes to the local profile. In either case, the profile is not saved back to the network server, during login, after ZEN makes its changes to the profile. We rely on the OS to save the profile to the network server at user logout. When the OS comes along later in the login sequence and loads the profile for desktop creation, it will determine that the files on the workstation are already up to date (because NWGina just downloaded it) and it will not subsequently download the roaming profile again. It does however, verify the local profile by checking the time stamps of all files in the profile, not just the NTUSER.DAT file. At user logout, the OS will then save the local profile back to the network server.

Beginning with the Novell Client 4.9, the client was changed to take advantage of the Microsoft LoadUserProfile and UnloadUserProfile API calls to handle the roaming profile. These APIs do all the work of downloading and uploading the user profile to/from the network server. When NWGina issues the LoadUserProfile API call, it causes the OS to download the roaming profile to the local workstation if needed. ZEN will then apply its policy changes to the local profile. NWGina will then call the UnloadUserProfile in order to save the ZEN changes that may have been applied. The UnloadUserProfile will then check the time stamps of the files and folders (in the roaming profile) to determine what files have changed between the downloaded roaming profile and the roaming profile stored on the server. Only those files that have changed will be uploaded back to the server. At this point the OS will issue the LoadUserProfile API call as part of the desktop creation for the user that is logging on. All of this happens as part of the normal login sequence for the user. By using these APIs, Novell now handles the profiles the same way Microsoft does because it is now Microsoft that is downloading them on our behalf.

However, there was a performance problem introduced by the new handling of roaming profiles. An analysis revealed that roaming profiles were being copied back to the network server during the login sequence. As described above, the UnloadUserProfile API causes a reconciliation to occur between the downloaded roaming profile and the roaming profile stored on the server. As a result, any files in the profile that have changed are saved back to the network server. This saving of the profile during login, in conjunction with the network problems, can contribute to an increase in a users login time during peak login hours. Novell has corrected this problem by modifying NWGina (available in an updated NWGINA.DLL dated 25Oct2005 or later) such that it no longer issues the UnloadUserProfile API during login of the user. It now waits until user logout to issue this API and close the open profile handles. In doing this, the roaming profile is only saved once, at user logout, instead of twice, once at login and then again at logout. This reduces the amount of network traffic at login time, and thus reduces the time required for a user to login to the workstation. Note that this does not increase the time required to logout of the workstation. The profile is still only saved to the network server once at logout, even though two processes (NWGina and the OS itself) are now calling the UnloadUserProfile API at logout time. The reason for this is that these APIs maintain a reference count as to how many processes have called the LoadUserProfile API. Only when the reference count returns to zero will the UnloadUserProfile actually save the profile to the network. As an example of this behavior, consider the following login sequences.

Previous usage of the APIs
1. NWGina calls LoadUserProfile. Reference count is now 1.
2. ZEN processes policy settings.
3. NWGina calls UnloadUserProfile. NWGina profile handles are closed. Reference count is now 0. Since the count is at 0, the profile is then saved back to the network server for storage of the roaming profile.
4. The OS calls LoadUserProfile for desktop creation. Reference count is now 1. User is now logged on.
5. When the user logs out, the OS calls UnloadUserProfile. OS profile handles are closed. Reference count is now 0. Since the count is at 0, the profile is then saved back to the network server for storage of the roaming profile.

New usage of the APIs
1. NWGina calls LoadUserProfile. Reference count is now 1.
2. ZEN processes policy settings.
3. The OS calls LoadUserProfile for desktop creation. Reference count is now 2. User is now logged on.
4. When the user logs out, the OS calls UnloadUserProfile. OS profile handles are closed. Reference count is now 1. Since the count is NOT 0, the profile is NOT saved back to the network server at this time.
5. Also during logout, NWGina calls UnloadUserProfile. NWGina profile handles are closed. Reference count is now 0. Since the count is at 0, the profile is then saved back to the network server for storage of the roaming profile.

This example illustrates how the this change to NWGina eliminates the unnecessary saving of the profile during login, thus reducing traffic, and ultimately reducing the user login time.

.

document

Document Title: Novell Client Roaming Profile Behaviors
Document ID: 10099432
Solution ID: NOVL103977
Creation Date: 21Oct2005
Modified Date: 26Oct2005
Novell Product Class:Netware Client

disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.